/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	ModuleService.java
 * 模块说明：	
 * 修改历史：
 * Feb 4, 2008 - lxm - 创建。
 */
package com.hd123.rumba.gwt.cpnts.module.client;

import java.util.Map;
import java.util.Set;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.hd123.rumba.gwt.base.client.RBRemoteService;
import com.hd123.rumba.gwt.base.client.exception.ClientBizException;

/**
 * @author lxm
 * 
 */
public interface ModuleService extends RBRemoteService {
  
  public static class Locator {
    
    private static ModuleServiceAsync service = null;
    private static final String SERVICE_URL = "RB/module";
    
    public static ModuleServiceAsync getService() {
      if (service == null) {
        service = (ModuleServiceAsync) GWT.create(ModuleService.class);
        ServiceDefTarget endpoint = (ServiceDefTarget) service;
        String moduleRelaUrl = GWT.getModuleBaseURL() + SERVICE_URL;
        endpoint.setServiceEntryPoint(moduleRelaUrl);
      }
      return service;
    }
  }

  /**
   * 取得gwt模块访问URL。
   * 
   * @param relaModuleURL
   *          指定相对gwt模块url。例如：<code>entry.Entry/Entry.html</code>。
   * @return 返回真实的gwt模块访问URL。例如：<code>www/com.hd123.rumba.gwt.entry.Entry/Entry.html</code>。
   * @throws ClientBizException
   */
  public String getRealModuleURL(String relaModuleURL) throws ClientBizException;

  /**
   * 批量取得gwt模块访问URL。
   * 
   * @param relaModuleURLs
   *          指定相对gwt模块url集合。
   * @return 返回真实的gwt模块访问URL的映射表，其中key为传入的相对gwt模块url，value为取得的真实gwt模块url。
   * @throws ClientBizException
   * @gwt.typeArgs relaModuleURLs <java.lang.String>
   * @gwt.typeArgs <java.lang.String, java.lang.String>
   */
  public Map getRealModuleURLs(Set relaModuleURLs) throws ClientBizException;
}
